home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / games / spassion / source.lzh / SOURCE / ESHOT.H < prev    next >
Text File  |  2000-02-17  |  3KB  |  92 lines

  1. /* eshot.h */
  2.  
  3. #ifndef ESHOT_X
  4. #define ESHOT_X    (*((short *) (&eshot->lx)))    /*lxの上位ワード*/
  5. #define ESHOT_Y    (*((short *) (&eshot->ly)))    /*lyの上位ワード*/
  6. #endif
  7.  
  8. #define ESHOT_ERASE    14    /* 弾消し用定数 */
  9.  
  10. typedef struct ESHOT{
  11.     signed short x, y;                /* 座標 */
  12.     short    pt;                        /* スプライトパターンNo. */
  13.     short    info;                    /* 反転コード・色・優先度を表わすデータ */
  14.     signed int lx, ly;                /* 32bit X,Y 座標 ( l = longword ) */
  15.     signed int vx, vy;                /* 速度 */
  16.     short    *pt_;                    /* スプライトパターンNo.へのポインタ */
  17. #if 0
  18.     signed short hit_px, hit_py;    /* 対プレイヤー当たり判定 */
  19.     signed short hit_ox, hit_oy;    /* 対オプション当たり判定 */
  20. #endif
  21.     HIT_XY    *hit_p;                    /* 対プレイヤー当たり判定 */
  22.     HIT_XY    *hit_o;                    /* 対オプション当たり判定 */
  23.     BOX_PTR    box,old_box;            /* レーザーなどに使う */
  24.     signed short box_x, box_y;        /* boxの基準になる座標 */
  25.  
  26.     short    type;                    /* 武器の種類 */
  27.     short    arg;                    /* 引数 */
  28.     short    state;                    /* 動き制御用 */
  29.     short    angle;                    /* 角度 (0~255) */
  30.     unsigned char     speed;            /* 速度 (0~7) */
  31.     short    flg;                    /* etc */
  32.     short    laser;                    /* レーザー系か(テキストを使うか) */
  33.  
  34.     short    anim_count;                /* アニメーションカウント */
  35.     short    count;                    /* 汎用カウンタ */
  36.     short (*func_eshot_move)( struct ESHOT * );    /* 弾の動き用関数 */
  37.     struct ENEMY *enemy;            /* この弾を撃った敵へのポインタ */
  38.     struct ESHOT *next, *pre;        /* リスト */
  39. }ESHOT;
  40.  
  41. /* 敵弾の情報(MakeEShotの引数) */
  42. typedef struct ESHOTINFO{
  43.     short    type;                    /* 敵の種類 */
  44.     signed short x, y;                /* 座標 */
  45.     unsigned char speed;            /* 速度 */
  46.     unsigned char angle;            /* 角度 */
  47.     signed short t;                    /*  */
  48.     short    arg;                    /* 引数 */
  49.     signed short box_x, box_y;        /* boxの基準になる座標 */
  50.     ENEMY    *enemy;                    /* 発射した敵へのポインタ */
  51. }ESHOTINFO;
  52.  
  53.  
  54. enum {
  55.     ESHOT_ENG01 = 0,    /* エネルギー弾(小) */
  56.     ESHOT_ENG02,        /* エネルギー弾(中) */
  57.     ESHOT_ENG03,        /* エネルギー弾(大) */
  58.     ESHOT_NOMAL,        /* 通常弾 */
  59.     ESHOT_SYURIKEN,        /* 手裏剣 */
  60.     ESHOT_ENERGY01,        /* エネルギー弾(小) */
  61.     ESHOT_ENERGY02,        /* エネルギー弾(中) */
  62.     ESHOT_ENERGY03,        /* エネルギー弾(大) */
  63.     ESHOT_RING01,        /* リング(中) */
  64.     ESHOT_RING02,        /* リング(大) */
  65.     ESHOT_LASER00,        /* レーザー */
  66.     ESHOT_CUTTER,        /* カッター */
  67.     ESHOT_HOMING,        /* ホーミング */
  68.     ESHOT_PARACHUTE,    /* 落下傘 */
  69.     ESHOT_PARABOLA,        /* 放物線 */
  70.     ESHOT_LASER01,        /* 横レーザー */
  71.     ESHOT_LASEREX        /* あとから太くなる横レーザー */
  72. };
  73.  
  74. #ifdef GLOBAL_DEFINE        /* グローバル変数の定義と宣言を1つにまとめるテク */
  75. #define Extern            /* Extern をヌル文字列に置換 */
  76. #else
  77. #define Extern extern        /* Extern を extern に置換 */
  78. #endif
  79.  
  80. char eshot_erase;    /* >0 なら弾を消す */
  81.  
  82. /* 関数プロトタイプ宣言 */
  83. void    InitEShot0( void );
  84. void    InitEShot( void );
  85. /*viod    MakeEShot(short type, signed short x, signed short y, unsigned char speed, unsigned char angle, signed short t, short arg, ENEMY *enemy);*/
  86. /*ESHOT    *MakeEShot( ESHOTINFO * );*/
  87. ESHOT    *MakeEShot(short type, signed short x, signed short y,
  88.                    unsigned char speed, unsigned char angle,
  89.                    signed short t, short arg, ENEMY *enemy);
  90. void    MoveEShot( void );
  91. ESHOT    *EraseEShot( ESHOT *eshot );
  92.